﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.IO;
using System.Xml.Serialization;

namespace FourPartHarmonyTestProject
{
    /// <summary>
    /// 和声 理論と実習III巻の課題
    /// </summary>
    [TestClass]
    public class UnitTest3
    {
        static Tester tester;

        string basePath = "C:/work/和声理論と実習III/";

        private int Test断片的連結(string path) {
            return tester.Test断片的連結(basePath + path);
        }
        private int Test課題の実施(string path) {
            return tester.Test課題の実施(basePath + path);
        }

        public UnitTest3() {
            //
            // TODO: コンストラクタ ロジックをここに追加します
            //
        }

        [ClassInitialize()]
        public static void MyClassInitialize(TestContext testContext) {
            tester = Tester.Instance;
            tester.IncRef();
        }

        [ClassCleanup()]
        public static void MyClassCleanup() {
            tester.DecRef();
        }

        private TestContext testContextInstance;

        /// <summary>
        ///現在のテストの実行についての情報および機能を
        ///提供するテスト コンテキストを取得または設定します。
        ///</summary>
        public TestContext TestContext {
            get {
                return testContextInstance;
            }
            set {
                testContextInstance = value;
            }
        }

        #region 追加のテスト属性
        //
        // テストを作成する際には、次の追加属性を使用できます:
        //
        // クラス内で最初のテストを実行する前に、ClassInitialize を使用してコードを実行してください
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // クラス内のテストをすべて実行したら、ClassCleanup を使用してコードを実行してください
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // 各テストを実行する前に、TestInitialize を使用してコードを実行してください
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // 各テストを実行した後に、TestCleanup を使用してコードを実行してください
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        #region III巻p212 76
        [TestMethod] public void IIIp212_1() { Assert.AreEqual(0, Test断片的連結("IIIp212_1.fph")); }
        [TestMethod] public void IIIp212_2() { Assert.AreEqual(0, Test断片的連結("IIIp212_2.fph")); }
        [TestMethod] public void IIIp212_3() { Assert.AreEqual(0, Test断片的連結("IIIp212_3.fph")); }
        [TestMethod] public void IIIp212_4() { Assert.AreEqual(0, Test断片的連結("IIIp212_4.fph")); }
        [TestMethod] public void IIIp212_5() { Assert.AreEqual(0, Test断片的連結("IIIp212_5.fph")); }
        [TestMethod] public void IIIp213_1() { Assert.AreEqual(0, Test断片的連結("IIIp213_1.fph")); }
        [TestMethod] public void IIIp213_2() { Assert.AreEqual(0, Test断片的連結("IIIp213_2.fph")); }
        [TestMethod] public void IIIp214_1() { Assert.AreEqual(0, Test断片的連結("IIIp214_1.fph")); }
        [TestMethod] public void IIIp214_2() { Assert.AreEqual(0, Test断片的連結("IIIp214_2.fph")); }
        [TestMethod] public void IIIp215_1() { Assert.AreEqual(0, Test断片的連結("IIIp215_1.fph")); }
        #endregion

        #region III巻課題30
        [TestMethod] public void III巻課題30_01() { Assert.AreEqual(0, Test課題の実施("IIIk30_1test.fph")); }
        [TestMethod] public void III巻課題30_02() { Assert.AreEqual(0, Test課題の実施("IIIk30_2test.fph")); }
        [TestMethod] public void III巻課題30_03() { Assert.AreEqual(0, Test課題の実施("IIIk30_3test.fph")); }
        [TestMethod] public void III巻課題30_04() { Assert.AreEqual(0, Test課題の実施("IIIk30_4test.fph")); }
        [TestMethod] public void III巻課題30_05() { Assert.AreEqual(0, Test課題の実施("IIIk30_5test.fph")); }
        [TestMethod] public void III巻課題30_06() { Assert.AreEqual(0, Test課題の実施("IIIk30_6test.fph")); }
        [TestMethod] public void III巻課題30_07() { Assert.AreEqual(0, Test課題の実施("IIIk30_7test.fph")); }
        [TestMethod] public void III巻課題30_08() { Assert.AreEqual(0, Test課題の実施("IIIk30_8test.fph")); }
        #endregion

        #region III巻課題31
        [TestMethod] public void III巻課題31_01() { Assert.AreEqual(0, Test課題の実施("IIIk31_1test.fph")); }
        [TestMethod] public void III巻課題31_02() { Assert.AreEqual(0, Test課題の実施("IIIk31_2test.fph")); }
        [TestMethod] public void III巻課題31_03() { Assert.AreEqual(0, Test課題の実施("IIIk31_3test.fph")); }
        [TestMethod] public void III巻課題31_04() { Assert.AreEqual(0, Test課題の実施("IIIk31_4test.fph")); }
        #endregion

        #region III巻課題32
        [TestMethod] public void III巻課題32_01() { Assert.AreEqual(0, Test課題の実施("IIIk32_1test.fph")); }
        [TestMethod] public void III巻課題32_02() { Assert.AreEqual(0, Test課題の実施("IIIk32_2test.fph")); }
        [TestMethod] public void III巻課題32_03() { Assert.AreEqual(0, Test課題の実施("IIIk32_3test.fph")); }
        [TestMethod] public void III巻課題32_04() { Assert.AreEqual(0, Test課題の実施("IIIk32_4test.fph")); }
        #endregion

        #region III巻課題33
        [TestMethod] public void III巻課題33_01() { Assert.AreEqual(0, Test課題の実施("IIIk33_1test.fph")); }
        [TestMethod] public void III巻課題33_02() { Assert.AreEqual(0, Test課題の実施("IIIk33_2test.fph")); }
        [TestMethod] public void III巻課題33_03() { Assert.AreEqual(0, Test課題の実施("IIIk33_3test.fph")); }
        [TestMethod] public void III巻課題33_04() { Assert.AreEqual(0, Test課題の実施("IIIk33_4test.fph")); }
        #endregion

        #region III巻p218 77
        [TestMethod] public void IIIp218_1() { Assert.AreEqual(0, Test断片的連結("IIIp218_1.fph")); }
        [TestMethod] public void IIIp218_2() { Assert.AreEqual(0, Test断片的連結("IIIp218_2.fph")); }
        [TestMethod] public void IIIp218_3() { Assert.AreEqual(0, Test断片的連結("IIIp218_3.fph")); }
        [TestMethod] public void IIIp218_4() { Assert.AreEqual(0, Test断片的連結("IIIp218_4.fph")); }
        [TestMethod] public void IIIp218_5() { Assert.AreEqual(0, Test断片的連結("IIIp218_5.fph")); }
        #endregion

        #region III巻p219 77
        [TestMethod] public void IIIp219_1() { Assert.AreEqual(1, Test断片的連結("IIIp219_1Prohibited.fph")); }
        [TestMethod] public void IIIp219_2() { Assert.AreEqual(1, Test断片的連結("IIIp219_2Prohibited.fph")); }
        [TestMethod] public void IIIp219_3() { Assert.AreEqual(0, Test断片的連結("IIIp219_3.fph")); }
        [TestMethod] public void IIIp219_4() { Assert.AreEqual(0, Test断片的連結("IIIp219_4.fph")); }
        [TestMethod] public void IIIp219_5() { Assert.AreEqual(0, Test断片的連結("IIIp219_5.fph")); }
        [TestMethod] public void IIIp219_6() { Assert.AreEqual(0, Test断片的連結("IIIp219_5.fph")); }
        #endregion

        #region III巻p221 77
        [TestMethod] public void IIIp221_1() { Assert.AreEqual(0, Test断片的連結("IIIp221_1.fph")); }
        [TestMethod] public void IIIp221_2() { Assert.AreEqual(0, Test断片的連結("IIIp221_2.fph")); }
        [TestMethod] public void IIIp221_3() { Assert.AreEqual(0, Test断片的連結("IIIp221_3.fph")); }
        [TestMethod] public void IIIp221_4() { Assert.AreEqual(0, Test断片的連結("IIIp221_4.fph")); }
        [TestMethod] public void IIIp221_5() { Assert.AreEqual(0, Test断片的連結("IIIp221_5.fph")); }
        [TestMethod] public void IIIp222_1() { Assert.AreEqual(0, Test断片的連結("IIIp222_1.fph")); }
        [TestMethod] public void IIIp222_2() { Assert.AreEqual(0, Test断片的連結("IIIp222_2.fph")); }
        #endregion

        #region III巻課題34
        [TestMethod] public void III巻課題34_a1() { Assert.AreEqual(0, Test課題の実施("IIIk34_a1test.fph")); }
        [TestMethod] public void III巻課題34_a2() { Assert.AreEqual(0, Test課題の実施("IIIk34_a2test.fph")); }
        [TestMethod] public void III巻課題34_a3() { Assert.AreEqual(0, Test課題の実施("IIIk34_a3test.fph")); }
        [TestMethod] public void III巻課題34_a4() { Assert.AreEqual(0, Test課題の実施("IIIk34_a4test.fph")); }
        [TestMethod] public void III巻課題34_b1() { Assert.AreEqual(0, Test課題の実施("IIIk34_b1test.fph")); }
        [TestMethod] public void III巻課題34_b2() { Assert.AreEqual(0, Test課題の実施("IIIk34_b2test.fph")); }
        [TestMethod] public void III巻課題34_c1() { Assert.AreEqual(0, Test課題の実施("IIIk34_c1test.fph")); }
        [TestMethod] public void III巻課題34_c2() { Assert.AreEqual(0, Test課題の実施("IIIk34_c2test.fph")); }
        [TestMethod] public void III巻課題34_c3() { Assert.AreEqual(0, Test課題の実施("IIIk34_c3test.fph")); }
        [TestMethod] public void III巻課題34_c4() { Assert.AreEqual(0, Test課題の実施("IIIk34_c4test.fph")); }
        #endregion

        #region III巻課題35
        [TestMethod] public void III巻課題35_01() { Assert.AreEqual(0, Test課題の実施("IIIk35_1test.fph")); }
        [TestMethod] public void III巻課題35_02() { Assert.AreEqual(0, Test課題の実施("IIIk35_2test.fph")); }
        [TestMethod] public void III巻課題35_03() { Assert.AreEqual(0, Test課題の実施("IIIk35_3test.fph")); }
        [TestMethod] public void III巻課題35_04() { Assert.AreEqual(0, Test課題の実施("IIIk35_4test.fph")); }
        [TestMethod] public void III巻課題35_05() { Assert.AreEqual(0, Test課題の実施("IIIk35_5test.fph")); }
        [TestMethod] public void III巻課題35_06() { Assert.AreEqual(0, Test課題の実施("IIIk35_6test.fph")); }
        [TestMethod] public void III巻課題35_07() { Assert.AreEqual(0, Test課題の実施("IIIk35_7test.fph")); }
        #endregion
    }
}
